package com.cjm.one.webmanager.service.order;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cjm.one.common.result.Result;
import com.cjm.one.model.base.PageVo;
import com.cjm.one.model.order.dto.OrderChartItem;
import com.cjm.one.model.order.dto.OrderNoRefundDto;
import com.cjm.one.model.order.entity.OrderInfo;
import com.cjm.one.model.order.enums.OrderStatusEnum;
import com.cjm.one.model.order.enums.PayTypeEnum;
import com.cjm.one.model.order.vo.OrderInfoVo;

import java.util.List;
import java.util.Map;

public interface OrderInfoService {
    Result<PageVo<OrderInfoVo>> list(Long current, Long size, Long userId, String orderNo, OrderStatusEnum status, PayTypeEnum payStatus, String userName, String createTimeStart, String createTimeEnd, String phone, String goodsName);


    Result<OrderInfoVo> getOrderInfo(Long id);

    Result<Boolean> delete(Long id);

    Result<Boolean> deleteBatch(Long[] ids);

    Result<Boolean> refund(Long id);

    Result<Boolean> updateStatus(Long id, OrderStatusEnum status);

    Result<OrderStatusEnum> test();

    Result<Boolean> noRefund(OrderNoRefundDto orderNoRefundDto);

    Result<Map<String, Object>> getOrderSummary(String timeRange);

    Result<List<OrderChartItem>> getOrderChart(String timeRange);
}
